82 research outputs found

    Speeding Up Maximal Causality Reduction with Static Dependency Analysis

    Get PDF
    Stateless Model Checking (SMC) offers a powerful approach to verifying multithreaded programs but suffers from the state-space explosion problem caused by the huge thread interleaving space. The pioneering reduction technique Partial Order Reduction (POR) mitigates this problem by pruning equivalent interleavings from the state space. However, limited by the happens-before relation, POR still explores redundant executions. The recent advance, Maximal Causality Reduction (MCR), shows a promising performance improvement over the existing reduction techniques, but it has to construct complicated constraints to ensure the feasibility of the derived execution due to the lack of dependency information. In this work, we present a new technique, which extends MCR with static analysis to reduce the size of the constraints, thus speeding up the exploration of the state space. We also address the redundancy problem caused by the use of static analysis. We capture the dependency between a read and a later event e in the trace from the system dependency graph and identify those reads that e is not control dependent on. Our approach then ignores the constraints over such reads to reduce the complexity of the constraints. The experimental results show that compared to MCR, the number of the constraints and the solving time by our approach are averagely reduced by 31.6% and 27.8%, respectively

    Exploring the relationship between welfare participation in childhood and depression in adulthood in the United States

    Get PDF
    OBJECTIVE: Depression is a serious mental health disorder, and untangling its causal agents is a major public health priority in the United States. This study examines the relationship between participating in welfare programs during childhood and experiencing depression during young adulthood. METHOD: This study used wave I and IV data from the Add Health (N = 15,701). Multiple imputation is used to deal with missing data. Propensity score matching is used to reduce the selection bias, and then multiple regressions were used to examine the welfare participation and depression relationships. RESULTS: Overall, young adults from welfare-recipient families reported significantly higher depression scores, rather than the clinical diagnosis of depression. Subgroup analyses showed only the poor group had significantly higher depression scores, whereas only the near-poor group had a significantly diagnosed depression outcome. Additionally, significantly higher depression scores were found for female youth from welfare-recipient families. However, no significant differences were found between the gender groups regarding diagnosed depression. DISCUSSION: Using welfare participation as an economic marker, the subgroup analyses help to identify target populations for future intervention. Implications of this study will be of interest to policy makers and have value for informing policy decisions

    SmartTrack: Efficient Predictive Race Detection

    Full text link
    Widely used data race detectors, including the state-of-the-art FastTrack algorithm, incur performance costs that are acceptable for regular in-house testing, but miss races detectable from the analyzed execution. Predictive analyses detect more data races in an analyzed execution than FastTrack detects, but at significantly higher performance cost. This paper presents SmartTrack, an algorithm that optimizes predictive race detection analyses, including two analyses from prior work and a new analysis introduced in this paper. SmartTrack's algorithm incorporates two main optimizations: (1) epoch and ownership optimizations from prior work, applied to predictive analysis for the first time; and (2) novel conflicting critical section optimizations introduced by this paper. Our evaluation shows that SmartTrack achieves performance competitive with FastTrack-a qualitative improvement in the state of the art for data race detection.Comment: Extended arXiv version of PLDI 2020 paper (adds Appendices A-E) #228 SmartTrack: Efficient Predictive Race Detectio

    Effective Lifetime of Non-Equilibrium Carriers in Semiconductors from Non-Adiabatic Molecular Dynamics Simulations

    Full text link
    The lifetime of non-equilibrium electrons and holes in semiconductors is crucial for solar cell and optoelectronic applications. Non-adiabatic molecular dynamics (NAMD) simulations based on time-dependent density functional theory (TDDFT) are widely used to study excited-state carrier dynamics. However, the calculated carrier lifetimes are often different from experimental results by orders of magnitude. In this work, by revisiting the definition of carrier lifetime and considering different recombination mechanisms, we report a systematic procedure for calculating the effective carrier lifetime in realistic semiconductor crystals that can be compared directly to experimental measurements. The procedure shows that considering all recombination mechanisms and using reasonable densities of carriers and defects are crucial in calculating the effective lifetime. When NAMD simulations consider only Shockey-Read-Hall (SRH) defect-assisted and band-to-band non-radiative recombination while neglect band-to-band radiative recombination, and the densities of non-equilibrium carriers and defects in supercell simulations are much higher than those in realistic semiconductors under solar illumination, the calculated lifetimes are ineffective and thus differ from experiments. Using our procedure, the calculated effective lifetime of the halide perovskite CH3NH3PbI3 agrees with experiments. It is mainly determined by band-to-band radiative and defect-assisted non-radiative recombination, while band-to-band non-radiative recombination is negligible. These results indicate that it is possible to calculate carrier lifetimes accurately based on NAMD simulations, but the directly calculated values should be converted to effective lifetimes for comparison to experiments. The revised procedure can be widely applied in future carrier lifetime simulations.Comment: 30 pages, 5 figure

    A modified ‘skeleton/skin’ strategy for designing CoNiP nanosheets arrayed on graphene foam for on/off switching of NaBH4_{4} hydrolysis

    Get PDF
    CoNiP nanosheet array catalysts were successfully prepared on three-dimensional (3D) graphene foam using hydrothermal synthesis. These catalysts were prepared using 3D Ni–graphene foam (Ni/GF), comprising nickel foam as the ‘skeleton’ and reduced graphene oxide as the ‘skin’. This unique continuous modified ‘skeleton/skin’ structure ensure that the catalysts had a large surface area, excellent conductivity, and sufficient surface functional groups, which promoted in situ CoNiP growth, while also optimizing the hydrolysis of sodium borohydride. The nanosheet arrays were fully characterized and showed excellent catalytic performance, as supported by density functional theory calculations. The hydrogen generation rate and activation energy are 6681.34 mL min1_{−1} g1_{−1} and 31.2 kJ mol1_{−1}, respectively, outperforming most reported cobalt-based catalysts and other precious metal catalysts. Furthermore, the stability of mockstrawberry-like CoNiP catalyst was investigated, with 74.9% of the initial hydrogen generation rate remaining after 15 cycles. The catalytic properties, durability, and stability of the catalyst were better than those of other catalysts reported previously

    Fast and Effective Approaches for Verifying and Debugging Concurrent Programs

    No full text
    Concurrent programs are ubiquitous, from the high-end servers to personal machines, due to the fact of multi-core hardware. Unfortunately, it is difficult to write correct concurrent programs. Stateless Model Checking (SMT) and Deterministic Replay are powerful techniques for systematic testing and reproducing concurrent failures. However, it is challenging to develop efficient and practical SMT and bug reproduction systems due to the exponentially large thread interleaving space which can be exacerbated when it comes to relaxed memory models. In this work, I introduce my research efforts to address the challenges in developing fast and effective SMT and deterministic replay techniques. I present a new model checking technique based on maximal causality reduction for verifying concurrent programs under different memory models. I also optimize the model checker by using static dependency analysis to reduce the constraints size and introducing a new equivalence for checking the seed interleavings, which I call switch equivalence to further reduce the redundant exploration. To debug heisenbugs more efficiently, I presents a new concurrency failure reproduction technique, H3, that enables reproducing concurrency bugs in production runs on commercial off-the-shelf hardware for the first time. H3 integrates the hardware control flow tracing capability provided in recent Intel processors, Processor Tracing (PT), with symbolic constraint analysis. Compared to a state-of-the-art solution, CLAP, this integration allows H3 to reproduce failures with much lower runtime overhead and much more compact control-flow trace. Moreover, it allows us to develop a highly effective core-based constraint reduction technique that reduces the complexity of the generated symbolic constraints from exponential in the trace size to exponential in the number of cores

    Fast and Effective Approaches for Verifying and Debugging Concurrent Programs

    No full text
    Concurrent programs are ubiquitous, from the high-end servers to personal machines, due to the fact of multi-core hardware. Unfortunately, it is difficult to write correct concurrent programs. Stateless Model Checking (SMT) and Deterministic Replay are powerful techniques for systematic testing and reproducing concurrent failures. However, it is challenging to develop efficient and practical SMT and bug reproduction systems due to the exponentially large thread interleaving space which can be exacerbated when it comes to relaxed memory models. In this work, I introduce my research efforts to address the challenges in developing fast and effective SMT and deterministic replay techniques. I present a new model checking technique based on maximal causality reduction for verifying concurrent programs under different memory models. I also optimize the model checker by using static dependency analysis to reduce the constraints size and introducing a new equivalence for checking the seed interleavings, which I call switch equivalence to further reduce the redundant exploration. To debug heisenbugs more efficiently, I presents a new concurrency failure reproduction technique, H3, that enables reproducing concurrency bugs in production runs on commercial off-the-shelf hardware for the first time. H3 integrates the hardware control flow tracing capability provided in recent Intel processors, Processor Tracing (PT), with symbolic constraint analysis. Compared to a state-of-the-art solution, CLAP, this integration allows H3 to reproduce failures with much lower runtime overhead and much more compact control-flow trace. Moreover, it allows us to develop a highly effective core-based constraint reduction technique that reduces the complexity of the generated symbolic constraints from exponential in the trace size to exponential in the number of cores
    corecore